home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
-
-
-
-
-
-
-
- I. Technical Notes
- Copyright (C) InfoSoft, 1990 - 1991
-
-
-
- Every library function is designed to be as compatible as
- possible not only across the various DOS versions but among compatible
- (and sometimes not so compatible) clone systems. In all cases the
- functions are designed to properly operate on Phoenix and IBM 5153 (the
- original PC) BIOS systems.
-
- We will attempt to briefly document here any known problems
- with certain systems, routines and/or QB itself:
-
-
- A. DELAY/DELAY18 3/90
- We recently noticed a very strange bug in a very large application
- under BASIC PDS (both in the QBX environment and in compiled form).
- When we sound the speaker via SpkrSnd either directly or indirectly via
- DialogBox or FlexMenu errors, the speaker stayed on (ie the passed
- Duration value is incorrect).
- Further investigation indicates that this is a problem in QB
- passing arguments BYVAL in large programs. I can think of 3 ways to
- generate a delay:
-
- (1) Use INT 1ah to get the time and wait until x seconds
- or ticks are up. This one seems to work the best in the
- program described above. This has been reported to not
- work well on TANDY systems, but since documentation as
- far back as late 1986 show INT 1ah function 00 to be a
- valid BIOS call even on the original IBM PC, I have to
- assume problems with this method are are compatibility
- related.
-
- (2) Loop based on a peek at low memory where the clock tick
- is maintained. Sounds good, but does not work in the
- program above.
-
- (3) Take over INT 1Ch and let the BIOS count it off for us.
- This is the messiest and slowest method, and it too
- fails.
-
- Better results were always had using delays of more than 1
- tick. Oddly, limited success is also achieved by moving the
- DECLARE statement.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- For these reasons, all 3 methods of generating a short delay are
- available to registered GLIB users. The distribution LIB and QLB are
- created using method 1 above. Each method is called in the same manner
- (ie with the same name), but you can only add one to a LIB or a QLB and
- avoid name conflicts. Try them out and use the one that works best for
- you. The following shows the method used in each object module:
-
- DELAY.OBJ - INT 1ah (Method 1)
- DELAYX.OBJ - Low memory tick (Method 2)
- DELAYI.OBJ - Revectoring INT 1ch (Method 3)
-
-
-
- B. ArgC/ArgV 4/90
- These work fine under DOS 3.1 and before, but we have had reports of
- problems under PC DOS 3.31. Further investigation has revealed that DOS
- 3.1 and before DO NOT include the trailing carriage return as part of the
- length of the command tail in accordance with all DOS references.
- However, at least PC DOS 3.31 appears to include the trailing carriage
- return as a part of the length contrary to the various and numerous
- documentations available. As of GLib 2.0x, ArgC and ArgV should operate
- correctly without regard to the prevailing DOS version.
-
-
- C. ArgC/ArgV 6/90
- The command line argument routines included in initial shipments of
- the General LIBrary (GLIB) for BASIC PDS incorrectly counted the number
- of arguments when arguments were separated by more than one space.
- Likewise, ArgVar would return a null string when fetching the argument
- immediately preceeded by 2 or more spaces. As of June 1990, these have
- been fixed. Essentially, if you are reading this, then ArgC/ArgV in your
- library should work right.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-